Labels:text | diagram | screenshot | plan | parallel | rectangle | font OCR: Client Extensions Interpret( ), Interpreter Language m_RetOb's Extension Object Parser SbiEngine SbiParser Dim Interpreter As NewSbiEngine AddExtension (Object) | Block Interpreter :AddExtension"", Extension(1) Parse(Code) Fetch ' Get the Next Token from the Code. Interpreter AddExtension"", Extension(2) Runthis(Cede ) o Select Case m_Token Interpreter .RunThis(Code) Controller Case "CALL" Dim Function FactorCo ASNew SbiController SbiFunctionFactorOp PushValse(Value) FunctionFactorOp.Initialize Obj .. PopValue(Value) SbiObject IDs(D), InvokeName[Cbj,Namne,invoke Type,Expres, Resull) Exprs InvokeID(Obj,Id,Invoke Type, Expres, Result.] o Execute(Controller) End Select m_Simts m_Obj StiBlock SoiFunction FactorOp (2 Execute(Controller) @ Initialize(Object,id .... ) Execute(Controlen) o Set Parser = NewSb Parser 6 Set Block = Parser .Parse(Code) m_Invoke Type Set Controller - NewStiController m Exprs VirtualInvoke Obj .. Block Execute Controller IDs. Invoke Type. 5. Result For Each Sim !. in m: Simis Controller.Invoke D m_Obj ._ Simt.Exccute Controler mainvokeType Next Samt THExprs Figure 1: The Interpreter design pattern used in the SHI